package enumandlambda;

/**
 * @author shkstart
 * @create 2022-11-27-12:13
 */
public class App {
    public static void main(String[] args) {

//        printColor(ColorEnum.GREEN);

//        eachEnum();

//        valueOfTest();

        System.out.println("颜色的顺序是： 红色、绿色 、 黑色");
        ColorEnum colorEnum = ColorEnum.GREEN;
        ColorEnum colorEnum2 = ColorEnum.RED;
        ColorEnum colorEnum3 = ColorEnum.BLACK;

        int result1 = colorEnum.compareTo(colorEnum2);
        System.out.println("绿色对比红色 :" + result1);

        int result2 = colorEnum.compareTo(colorEnum);
        System.out.println("绿色对比绿色 :" + result2);

        int result3 = colorEnum.compareTo(colorEnum3);
        System.out.println("绿色对比黑色 :" + result3);

    }

    //常用方法三 valueOF
    private static void valueOfTest() {
        String color = "RED";
        try {
//          将字符串转换成枚举示例
            ColorEnum colorEnum = ColorEnum.valueOf(color);
            printColor(colorEnum);
        } catch (Exception e) {
            System.out.println("转换枚举类型失败");
        }
    }

    /*
    循环打印所有的枚举类型
     */
    private static void eachEnum() {
        //得到所有的枚举类型
        ColorEnum[] arrs = ColorEnum.values();
        for (ColorEnum item : arrs) {
//            返回当前枚举示例的下标
            int enumIdx = item.ordinal();
            System.out.println(item + ":" + enumIdx);
        }
    }

    /*
    枚举示例
     */
    public static void printColor(ColorEnum colorEnum) {
        switch (colorEnum) {
            case RED:
                System.out.println("这个红色");
                break;
            case BLACK:
                System.out.println("这是黑色");
                break;
            case GREEN:
                System.out.println("这是绿色");
                break;
            default:
                System.out.println("未知颜色");
                break;
        }
    }
}
